
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include<QKeyEvent>
#include<QTimer>



QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
//方向
enum Direct
{
    TOLEFT,
    TORIGHT,
    TOUP,
    TODOWN
};

class Widget : public QWidget

{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();

protected:
    //渲染绘图
    void paintEvent(QPaintEvent*event);
    //向上向下向左向右
    void up();
    void down();
    void right();
    void left();
    void addFood();

    //按键处理
    void keyPressEvent(QKeyEvent*event);
    //删除
    void lastRemove();
    //判断游戏失败条件
    bool crashJudge();

private:
    Ui::Widget *ui;
    //移动方向
    int moveDir=TOUP;
    //游戏开始
    bool gameStart=true;


    //定时器
    QTimer*timer;
    int time=100;//超时时间
    //表示蛇
    QList<QRectF>snake;
    //奖品
    QRectF foodNode;
    //一节蛇的宽度和高度
    int nodeWidth=20;
    int nodeHeight=20;
protected slots:
    void timeout();


};

#endif // WIDGET_H
